package com.gzhryc.pay.adaptation.weixin.msg.normal;

import java.io.Serializable;

public class WXPayNormalRefundNotify implements Serializable {

    private static final long serialVersionUID = 1L;

    private String mchid;       //直连商户号
    private String out_trade_no;        //商户订单号
    private String transaction_id;      //微信支付订单号
    private String out_refund_no;     //商户退款单号
    private String refund_id;       //微信支付退款单号
    /**
     * 枚举值：
     * SUCCESS：退款成功
     * CLOSE：退款关闭
     * ABNORMAL：退款异常
     */
    private String refund_status;   //退款状态
    /**
     * 遵循rfc3339标准格式
     * 格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE
     * YYYY-MM-DD表示年月日
     * T出现在字符串中，表示time元素的开头
     * HH:mm:ss表示时分秒
     * TIMEZONE表示时区（+08:00表示东八区时间，领先UTC 8小时，即北京时间）
     */
    private String success_time;    //退款成功时间
    /**
     * 退回银行卡：{银行名称}{卡类型}{卡尾号}
     * 退回支付用户零钱: 支付用户零钱
     * 退还商户: 商户基本账户、商户结算银行账户
     * 退回支付用户零钱通：支付用户零钱通
     */
    private String user_received_account;   //退款入账账户
    private AmountItem amount;      //金额信息

    public String getMchid() {
        return mchid;
    }

    public void setMchid(String mchid) {
        this.mchid = mchid;
    }

    public String getOut_trade_no() {
        return out_trade_no;
    }

    public void setOut_trade_no(String out_trade_no) {
        this.out_trade_no = out_trade_no;
    }

    public String getTransaction_id() {
        return transaction_id;
    }

    public void setTransaction_id(String transaction_id) {
        this.transaction_id = transaction_id;
    }

    public String getOut_refund_no() {
        return out_refund_no;
    }

    public void setOut_refund_no(String out_refund_no) {
        this.out_refund_no = out_refund_no;
    }

    public String getRefund_id() {
        return refund_id;
    }

    public void setRefund_id(String refund_id) {
        this.refund_id = refund_id;
    }

    public String getRefund_status() {
        return refund_status;
    }

    public void setRefund_status(String refund_status) {
        this.refund_status = refund_status;
    }

    public String getSuccess_time() {
        return success_time;
    }

    public void setSuccess_time(String success_time) {
        this.success_time = success_time;
    }

    public String getUser_received_account() {
        return user_received_account;
    }

    public void setUser_received_account(String user_received_account) {
        this.user_received_account = user_received_account;
    }

    public AmountItem getAmount() {
        return amount;
    }

    public void setAmount(AmountItem amount) {
        this.amount = amount;
    }

    public static class AmountItem implements Serializable {

        private static final long serialVersionUID = 1L;

        private Integer total;           //订单金额
        private Integer refund;         //退款金额
        private Integer payer_total;    //用户支付金额
        private Integer payer_refund;   //用户退款金额

        public Integer getTotal() {
            return total;
        }

        public void setTotal(Integer total) {
            this.total = total;
        }

        public Integer getRefund() {
            return refund;
        }

        public void setRefund(Integer refund) {
            this.refund = refund;
        }

        public Integer getPayer_total() {
            return payer_total;
        }

        public void setPayer_total(Integer payer_total) {
            this.payer_total = payer_total;
        }

        public Integer getPayer_refund() {
            return payer_refund;
        }

        public void setPayer_refund(Integer payer_refund) {
            this.payer_refund = payer_refund;
        }
    }
}
